package io;
//文件流  FileInputStream和FileOutputStream
import java.io.*;

public class FOSDemo {
    public static void main(String[] args) throws IOException {
        //JAVA IO将流划分为两类 ：节点流和处理流
        /** JAVA IO将流划分为两类:节点流和处理流
         * 节点流:俗称"低级流"，特点:真实连接我们程序和另一端的"管道"，负责实际读写数据的流
         *       文件流就是典型的节点流，真实连接我们程序与文件的"管道"，可以读写文件数据了。
         * 处理流:俗称"高级流"  (热水器，净水器) 高级流也可以连接在高级流上，处理效果可以叠加
         *       特点:
         *       1:不能独立存在(单独实例化进行读写操作不可以)
         *       2:必须连接在其他流上，目的是当数据"流经"当前流时，可以对其做某种加工操作，简化我们的工作、
         * 流的连接:实际开发中经常会串联一组高级流最终到某个低级流上，对数据进行流水线式的加工读写。
         *
         */

        /*
        input 输入流  读  字节流 流是单向的
        ouput 输出流  写
        java.io.InputStream:所有字节输入流的超类(抽象类)
        java.io.OutputStream:所有字节输出流的超类
         */

        //需求：向文件fos.dat中写入数据
//        在创建文件输出流时，文件输出流常见的构造器
//        FileOutputStream(String filename) 文件路径
//        FileOutputStream(File file) 文件名
//        File file = new File("./fos.dat");
//        FileOutputStream fos1 = new FileOutputStream(file);

     //   FileOutputStream fos = new FileOutputStream("./fos.dat");//没有默认无参构造，里面要写路径
        //向fos.dat写入文件
//        FileOutputStream fos = new FileOutputStream("fos.dat");//与上面的位置是一样的./可以省略
//        //向文件中写入1个字节---只写一个字节(1字节等于8位)
//
//        //在asc编码中小写字母'a'的2进制与整数97的2进制一样
//        fos.write(20);  //00000001
//        fos.write(97);
//        System.out.println("写出完毕");
//        fos.close();//注意！流使用完毕后要关闭,来释放底层资源

        FileOutputStream fos = new FileOutputStream("n.txt");
        fos.write(65);//向文件中写入一个字节
        fos.write(-1);
        System.out.println("写出完毕");
        fos.close();
        /*
        右移位>>>   左移位<<
        写入一个int值
        num:0111000  1100000 1110010 0001000
        fos.write(num>>>24);
        fos.write(num>>>16);
        fos.write(num>>>8);
        fos.write(num>>>6);
         */

    }
}

